package com.cskaoyan.javase.overload._1basic;

/**
 * 方法重载的条件
 * 方法的名字可以用来区分方法,一旦名字相同了,怎么区分方法呢?
 * 方法的签名: 可以用来唯一的识别一个方法,是 方法名 + 形参列表 的合称
 * 现在名字相同了,还想要方法不同,能够被识别,需要形参列表不同.
 *
 * 方法的重载条件: 在同一个类中,方法名相同,形参列表不同的多个方法
 *
 * 什么叫形参列表不同?
 *      1.形参的个数不同
 *      2.个数相同时,形参的数据类型不同
 *      3.个数相同,形参的数据类型也相同,但是形参的位置不同
 * 以上三种情况都能够构成方法的重载
 *
 * 思考:
 *      1.形参的名字不同,能够构成方法重载吗? 不能
 *      2.形参相同时,其他条件,比如修饰符不同,返回值类型不同等等,能够构成方法重载吗?
 *
 * @since 11:17
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {

    }

    public static void test() {
    }

    // 'test()' is already defined in 'com.cskaoyan.javase.overload._1basic.Demo'
    // 方法的重复
    // public static void test(){}
    public static void test(int a) {
    }

    // 修饰符列表和方法重载没关系
    // void test(int a) {
    // }

    public static void test(double a) {
    }
    // public static int test(double a) {
    //     return 1;
    // }
    // 形参的名字不同,不能构成方法的重载
    // public static void test(double c) {
    // }

    public static void test(double a, int b) {
    }

    public static void test(int a, double b) {
    }


}
